3D rendering engines often improve rendering performance by using texture samplers that can concurrently process more than one pixel. For example, some texture samplers can sample textures concurrently for blocks of two or more adjacent pixels. When processing adjacent pixels a typical texture sampler will undertake a separate texture address calculation for each pixel, fetch from memory the texture data (i.e., texels) for vertices bounding each texture address and then filter or blend the fetched texture data to obtain blended pixel values. However, using software to calculate separate texture addresses for adjacent pixels increases computation times while implementing the texture address calculations in hardware consumes more die space.
In some circumstances, 3D rendering engines may be used to rasterize primitives where the texture is aligned to the pixels being rendered. Aligned textures may arise where there is no rotation or perspective operations being applied to the textured primitive and hence the texture coordinates (e.g., u, v) are aligned to the pixel coordinates (e.g., x, y). The standard approach of undertaking separate texture address calculations for adjacent pixels fails to take advantage of the rectilinear relationship between texture coordinates and pixel coordinates for aligned textures.